<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');
/**
* @framework : Codeigniter Framework
*
* @author: fatangel26
*
*/
	class Menu extends Admin_Controller
	{
		public function __construct()
		{
			parent::__construct();

            $this->load->model("backend/menu_model", "MMenu", TRUE);

            if(!$this->my_session->is_Admin())
            {
                redirect(base_url()."backend/auth/login");

                exit();
            }

            $this->_data['left_content'] = $this->displayLeftContent();
		}

	    public function index()
        {
            $this->_data['title'] = 'Jewel | Danh sách menu';

            $data['menus'] = $this->MMenu->select();

            if(!$data['menus'])
            {
                $data['msg'] = 'Không có dữ liệu để hiển thị.';
            }

            $this->_data['content'] = $this->load->view("backend/menu/listmenu", $data, TRUE);

            $this->load->view("backend/layout", $this->_data);

        }//End function

        public function changestt()
        {
            if(!$this->uri->segment(4) || $this->uri->segment(4) == '')
            {
                $this->native_session->set_flashdata('msg','Không tồn tại mã chuyên mục này.');
            }
            else
            {
                $menu_id = $this->uri->segment(4);

                $check = $this->MMenu->edit($menu_id, array('menu_status' => $this->uri->segment(5)));

                if($check == FALSE)
                {
                    $this->native_session->set_flashdata('msg','Cập nhật trạng thái lỗi.');
                }
                else
                {
                    $this->native_session->set_flashdata('msg','Cập nhật trạng thái thành công.');
                }
            }//End else

            redirect(base_url()."backend/menu");
        }//End function

        public function createmenu()
        {
            $this->_data['title'] = 'Jewel | Tạo chuyên mục';

            $data['menus'] = $this->MMenu->select();

            /*Validate data*/
            $this->form_validation->set_rules('menu_name','Tên chuyên mục', 'trim|required|min_length[2]|xss_clean');
            $this->form_validation->set_rules('menu_order', 'Vị trí', 'trim|required|greater_than[-1]|numeric|xss_clean');
            $this->form_validation->set_rules('menu_title', 'Tiêu đề không dấu', 'trim|required|min_length[3]|xss_clean');
            $this->form_validation->set_message('required','<span style="font-weight: bold">%s</span> không được để trống');
            $this->form_validation->set_message('min_length','<span style="font-weight: bold">%s</span> không được ít hơn 2 ký tự');
            $this->form_validation->set_message('greater_than','<span style="font-weight: bold">%s</span> phải lớn hơn 0');
            $this->form_validation->set_message('numeric','<span style="font-weight: bold">%s</span> chỉ bao gồm số');

            if($this->form_validation->run()==FALSE)
            {
                $data['msg'] = '';
            }
            else
            {
                $strInsert = array(
                    'menu_name'     => $this->input->post('menu_name', TRUE),
                    'menu_order'    => $this->input->post('menu_order', TRUE),
                    'menu_parent'   => $this->input->post('menu_parent', TRUE),
                    'menu_status'   => $this->input->post('menu_status', TRUE),
                    'menu_title'    => $this->input->post('menu_title', TRUE)
                );

                $check = $this->MMenu->create($strInsert);

                if(!$check)
                {
                    $data['msg'] = 'Lỗi khởi tạo.';
                }
                else
                {
                    $this->native_session->set_flashdata('msg', 'Tạo chuyên mục mới thành công');

                    redirect(base_url()."backend/menu");

                    exit();
                }

            }

            $this->_data['content'] = $this->load->view("backend/menu/createmenu", $data, TRUE);

            $this->load->view("backend/layout", $this->_data);


        }//End function

        public function delmenu()
        {
            if(!$this->uri->segment(4) || $this->uri->segment(4)=='')
            {
                $this->native_session->set_flashdata('msg','Không tồn tại mã chuyên mục này');
            }
            else
            {
                $menu_id = $this->uri->segment(4);

                /*Kiem tra chuyen muc nay co con hay khong. Co-Khong xoa; Khong-Xoa*/
                $nums_child = $this->MMenu->countChildren($menu_id);

                if($nums_child > 0)
                {
                    $this->native_session->set_flashdata('msg','Bạn hãy xoá hết chuyên mục thuộc chuyên mục này');
                }
                else
                {
                    $check = $this->MMenu->delete($menu_id);

                    if(!$check)
                    {
                        $this->native_session->set_flashdata('msg','Lỗi delete');
                    }
                    else
                    {
                        $this->native_session->set_flashdata('msg', 'Xoá chuyên mục thành công');
                    }//End else
                }//End else
            }//End else
            redirect(base_url()."backend/menu");
        }//End function

        public function editmenu()
        {
            $this->_data['title'] = 'Jewel | Sửa chuyên mục';

            if(!$this->uri->segment(4) || $this->uri->segment(4)=='')
            {
                show_404();
            }
            else
            {
                $menu_id = $this->uri->segment(4);

                $data['menu'] = $this->MMenu->select(array('menu_id' => $menu_id));

                if(!$data['menu'])
                {
                    $data['msg'] = 'Không tồn tại mã chuyên mục này';
                }
                else
                {
                    $data['menus'] = $this->MMenu->select();

                    /*Validate data*/
                    $this->form_validation->set_rules('menu_name','Tên chuyên mục', 'trim|required|min_length[2]|xss_clean');
                    $this->form_validation->set_rules('menu_order', 'Vị trí', 'trim|required|greater_than[-1]|numeric|xss_clean');
                    $this->form_validation->set_rules('menu_title', 'Tiêu đề không dấu', 'trim|required|min_length[3]|xss_clean');
                    $this->form_validation->set_message('required','<span style="font-weight: bold">%s</span> không được để trống');
                    $this->form_validation->set_message('min_length','<span style="font-weight: bold">%s</span> không được ít hơn 2 ký tự');
                    $this->form_validation->set_message('greater_than','<span style="font-weight: bold">%s</span> phải lớn hơn 0');
                    $this->form_validation->set_message('numeric','<span style="font-weight: bold">%s</span> chỉ bao gồm số');

                    if($this->form_validation->run()==FALSE)
                    {
                        $data['msg'] = '';
                    }
                    else
                    {
                        $strUpdate = array(
                            'menu_name'     => $this->input->post('menu_name', TRUE),
                            'menu_order'    => $this->input->post('menu_order', TRUE),
                            'menu_parent'   => $this->input->post('menu_parent', TRUE),
                            'menu_status'   => $this->input->post('menu_status', TRUE),
                            'menu_title'    => $this->input->post('menu_title', TRUE)
                        );

                        $check = $this->MMenu->edit($menu_id, $strUpdate);

                        if(!$check)
                        {
                            $data['msg'] = 'Lỗi update';
                        }
                        else
                        {
                            $this->native_session->set_flashdata('msg', 'Cập nhật chuyên mục thành công');

                            redirect(base_url()."backend/menu");
                        }//End else
                    }//End else
                }//End else
            }//End else

            $this->_data['content'] = $this->load->view("backend/menu/editmenu", $data, TRUE);

            $this->load->view("backend/layout", $this->_data);

        }//End function

	}

/* End of file Menu.php */
/* Location: ./controllers/backend/menu.php */